{
 "cells": [
  {
   "cell_type": "code",
   "id": "initial_id",
   "metadata": {
    "collapsed": true,
    "ExecuteTime": {
     "end_time": "2025-11-03T02:33:40.042460Z",
     "start_time": "2025-11-03T02:33:38.682558Z"
    }
   },
   "source": [
    "\n",
    "from langchain_chroma import Chroma\n",
    "import torch\n",
    "from langchain_huggingface import HuggingFaceEmbeddings\n",
    "\n",
    "\n",
    "#6、初始化嵌入模型，创建实例，用于检索数据库\n",
    "\n",
    "embedding_model=HuggingFaceEmbeddings(\n",
    "    model_name=\"./bge-base-zh-v1.5\",\n",
    "    model_kwargs={\"device\": \"cuda\" if torch.cuda.is_available() else \"cpu\"},\n",
    "    encode_kwargs={\n",
    "        \"normalize_embeddings\": True\n",
    "    },  # 输出归一化向量，更适合余弦相似度计算，控制模长为1\n",
    ")\n",
    "vectorstore=Chroma(\n",
    "    persist_directory=\"./vectorstore\",\n",
    "    embedding_function=embedding_model,\n",
    ")\n",
    "\n",
    "query=\"男性被强奸怎么办\"\n",
    "\n",
    "#6.1进行像相似度检索\n",
    "result_1=vectorstore.similarity_search(query,k=3)\n",
    "for i in result_1:\n",
    "    print(i)\n",
    "\n",
    "#6.2进行最大相关检索\n",
    "result_2=vectorstore.max_marginal_relevance_search(query,k=3)\n",
    "for i in result_2:\n",
    "    print(i)\n",
    "\n",
    "#6.3先创建检索器再进行检索\n",
    "retrieve_tool=vectorstore.as_retriever()\n",
    "result_3=retrieve_tool.invoke(query)\n",
    "for i in result_3:\n",
    "    print(i)"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "page_content='第一千一百八十二条　侵害他人人身权益造成财产损失的，按照被侵权人因此受到的损失或者侵权人因此获得的利益赔偿；被侵权人因此受到的损失以及侵权人因此获得的利益难以确定，被侵权人和侵权人就赔偿数额协商不一致，向人民法院提起诉讼的，由人民法院根据实际情况确定赔偿数额。\n",
      "\n",
      "第一千一百八十三条　侵害自然人人身权益造成严重精神损害的，被侵权人有权请求精神损害赔偿。\n",
      "\n",
      "因故意或者重大过失侵害自然人具有人身意义的特定物造成严重精神损害的，被侵权人有权请求精神损害赔偿。\n",
      "\n",
      "第一千一百八十四条　侵害他人财产的，财产损失按照损失发生时的市场价格或者其他合理方式计算。\n",
      "\n",
      "第一千一百八十五条　故意侵害他人知识产权，情节严重的，被侵权人有权请求相应的惩罚性赔偿。\n",
      "\n",
      "第一千一百八十六条　受害人和行为人对损害的发生都没有过错的，依照法律的规定由双方分担损失。' metadata={'source': 'knowledge_base/sample.docx'}\n",
      "page_content='第一千一百六十九条　教唆、帮助他人实施侵权行为的，应当与行为人承担连带责任。\n",
      "\n",
      "教唆、帮助无民事行为能力人、限制民事行为能力人实施侵权行为的，应当承担侵权责任；该无民事行为能力人、限制民事行为能力人的监护人未尽到监护职责的，应当承担相应的责任。\n",
      "\n",
      "第一千一百七十条　二人以上实施危及他人人身、财产安全的行为，其中一人或者数人的行为造成他人损害，能够确定具体侵权人的，由侵权人承担责任；不能确定具体侵权人的，行为人承担连带责任。\n",
      "\n",
      "第一千一百七十一条　二人以上分别实施侵权行为造成同一损害，每个人的侵权行为都足以造成全部损害的，行为人承担连带责任。\n",
      "\n",
      "第一千一百七十二条　二人以上分别实施侵权行为造成同一损害，能够确定责任大小的，各自承担相应的责任；难以确定责任大小的，平均承担责任。\n",
      "\n",
      "第一千一百七十三条　被侵权人对同一损害的发生或者扩大有过错的，可以减轻侵权人的责任。' metadata={'source': 'knowledge_base/sample.docx'}\n",
      "page_content='第二章　损害赔偿\n",
      "\n",
      "第一千一百七十九条　侵害他人造成人身损害的，应当赔偿医疗费、护理费、交通费、营养费、住院伙食补助费等为治疗和康复支出的合理费用，以及因误工减少的收入。造成残疾的，还应当赔偿辅助器具费和残疾赔偿金；造成死亡的，还应当赔偿丧葬费和死亡赔偿金。\n",
      "\n",
      "第一千一百八十条　因同一侵权行为造成多人死亡的，可以以相同数额确定死亡赔偿金。\n",
      "\n",
      "第一千一百八十一条　被侵权人死亡的，其近亲属有权请求侵权人承担侵权责任。被侵权人为组织，该组织分立、合并的，承继权利的组织有权请求侵权人承担侵权责任。\n",
      "\n",
      "被侵权人死亡的，支付被侵权人医疗费、丧葬费等合理费用的人有权请求侵权人赔偿费用，但是侵权人已经支付该费用的除外。' metadata={'source': 'knowledge_base/sample.docx'}\n",
      "page_content='第一千一百八十二条　侵害他人人身权益造成财产损失的，按照被侵权人因此受到的损失或者侵权人因此获得的利益赔偿；被侵权人因此受到的损失以及侵权人因此获得的利益难以确定，被侵权人和侵权人就赔偿数额协商不一致，向人民法院提起诉讼的，由人民法院根据实际情况确定赔偿数额。\n",
      "\n",
      "第一千一百八十三条　侵害自然人人身权益造成严重精神损害的，被侵权人有权请求精神损害赔偿。\n",
      "\n",
      "因故意或者重大过失侵害自然人具有人身意义的特定物造成严重精神损害的，被侵权人有权请求精神损害赔偿。\n",
      "\n",
      "第一千一百八十四条　侵害他人财产的，财产损失按照损失发生时的市场价格或者其他合理方式计算。\n",
      "\n",
      "第一千一百八十五条　故意侵害他人知识产权，情节严重的，被侵权人有权请求相应的惩罚性赔偿。\n",
      "\n",
      "第一千一百八十六条　受害人和行为人对损害的发生都没有过错的，依照法律的规定由双方分担损失。' metadata={'source': 'knowledge_base/sample.docx'}\n",
      "page_content='第一百九十一条　未成年人遭受性侵害的损害赔偿请求权的诉讼时效期间，自受害人年满十八周岁之日起计算。\n",
      "\n",
      "第一百九十二条　诉讼时效期间届满的，义务人可以提出不履行义务的抗辩。\n",
      "\n",
      "诉讼时效期间届满后，义务人同意履行的，不得以诉讼时效期间届满为由抗辩；义务人已经自愿履行的，不得请求返还。\n",
      "\n",
      "第一百九十三条　人民法院不得主动适用诉讼时效的规定。\n",
      "\n",
      "第一百九十四条　在诉讼时效期间的最后六个月内，因下列障碍，不能行使请求权的，诉讼时效中止：\n",
      "\n",
      "（一）不可抗力；\n",
      "\n",
      "（二）无民事行为能力人或者限制民事行为能力人没有法定代理人，或者法定代理人死亡、丧失民事行为能力、丧失代理权；\n",
      "\n",
      "（三）继承开始后未确定继承人或者遗产管理人；\n",
      "\n",
      "（四）权利人被义务人或者其他人控制；\n",
      "\n",
      "（五）其他导致权利人不能行使请求权的障碍。\n",
      "\n",
      "自中止时效的原因消除之日起满六个月，诉讼时效期间届满。' metadata={'source': 'knowledge_base/sample.docx'}\n",
      "page_content='进行临床试验的，不得向受试者收取试验费用。\n",
      "\n",
      "第一千零九条　从事与人体基因、人体胚胎等有关的医学和科研活动，应当遵守法律、行政法规和国家有关规定，不得危害人体健康，不得违背伦理道德，不得损害公共利益。\n",
      "\n",
      "第一千零一十条　违背他人意愿，以言语、文字、图像、肢体行为等方式对他人实施性骚扰的，受害人有权依法请求行为人承担民事责任。\n",
      "\n",
      "机关、企业、学校等单位应当采取合理的预防、受理投诉、调查处置等措施，防止和制止利用职权、从属关系等实施性骚扰。\n",
      "\n",
      "第一千零一十一条　以非法拘禁等方式剥夺、限制他人的行动自由，或者非法搜查他人身体的，受害人有权依法请求行为人承担民事责任。\n",
      "\n",
      "第三章　姓名权和名称权\n",
      "\n",
      "第一千零一十二条　自然人享有姓名权，有权依法决定、使用、变更或者许可他人使用自己的姓名，但是不得违背公序良俗。' metadata={'source': 'knowledge_base/sample.docx'}\n",
      "page_content='第一千一百八十二条　侵害他人人身权益造成财产损失的，按照被侵权人因此受到的损失或者侵权人因此获得的利益赔偿；被侵权人因此受到的损失以及侵权人因此获得的利益难以确定，被侵权人和侵权人就赔偿数额协商不一致，向人民法院提起诉讼的，由人民法院根据实际情况确定赔偿数额。\n",
      "\n",
      "第一千一百八十三条　侵害自然人人身权益造成严重精神损害的，被侵权人有权请求精神损害赔偿。\n",
      "\n",
      "因故意或者重大过失侵害自然人具有人身意义的特定物造成严重精神损害的，被侵权人有权请求精神损害赔偿。\n",
      "\n",
      "第一千一百八十四条　侵害他人财产的，财产损失按照损失发生时的市场价格或者其他合理方式计算。\n",
      "\n",
      "第一千一百八十五条　故意侵害他人知识产权，情节严重的，被侵权人有权请求相应的惩罚性赔偿。\n",
      "\n",
      "第一千一百八十六条　受害人和行为人对损害的发生都没有过错的，依照法律的规定由双方分担损失。' metadata={'source': 'knowledge_base/sample.docx'}\n",
      "page_content='第一千一百六十九条　教唆、帮助他人实施侵权行为的，应当与行为人承担连带责任。\n",
      "\n",
      "教唆、帮助无民事行为能力人、限制民事行为能力人实施侵权行为的，应当承担侵权责任；该无民事行为能力人、限制民事行为能力人的监护人未尽到监护职责的，应当承担相应的责任。\n",
      "\n",
      "第一千一百七十条　二人以上实施危及他人人身、财产安全的行为，其中一人或者数人的行为造成他人损害，能够确定具体侵权人的，由侵权人承担责任；不能确定具体侵权人的，行为人承担连带责任。\n",
      "\n",
      "第一千一百七十一条　二人以上分别实施侵权行为造成同一损害，每个人的侵权行为都足以造成全部损害的，行为人承担连带责任。\n",
      "\n",
      "第一千一百七十二条　二人以上分别实施侵权行为造成同一损害，能够确定责任大小的，各自承担相应的责任；难以确定责任大小的，平均承担责任。\n",
      "\n",
      "第一千一百七十三条　被侵权人对同一损害的发生或者扩大有过错的，可以减轻侵权人的责任。' metadata={'source': 'knowledge_base/sample.docx'}\n",
      "page_content='第二章　损害赔偿\n",
      "\n",
      "第一千一百七十九条　侵害他人造成人身损害的，应当赔偿医疗费、护理费、交通费、营养费、住院伙食补助费等为治疗和康复支出的合理费用，以及因误工减少的收入。造成残疾的，还应当赔偿辅助器具费和残疾赔偿金；造成死亡的，还应当赔偿丧葬费和死亡赔偿金。\n",
      "\n",
      "第一千一百八十条　因同一侵权行为造成多人死亡的，可以以相同数额确定死亡赔偿金。\n",
      "\n",
      "第一千一百八十一条　被侵权人死亡的，其近亲属有权请求侵权人承担侵权责任。被侵权人为组织，该组织分立、合并的，承继权利的组织有权请求侵权人承担侵权责任。\n",
      "\n",
      "被侵权人死亡的，支付被侵权人医疗费、丧葬费等合理费用的人有权请求侵权人赔偿费用，但是侵权人已经支付该费用的除外。' metadata={'source': 'knowledge_base/sample.docx'}\n",
      "page_content='第一百九十一条　未成年人遭受性侵害的损害赔偿请求权的诉讼时效期间，自受害人年满十八周岁之日起计算。\n",
      "\n",
      "第一百九十二条　诉讼时效期间届满的，义务人可以提出不履行义务的抗辩。\n",
      "\n",
      "诉讼时效期间届满后，义务人同意履行的，不得以诉讼时效期间届满为由抗辩；义务人已经自愿履行的，不得请求返还。\n",
      "\n",
      "第一百九十三条　人民法院不得主动适用诉讼时效的规定。\n",
      "\n",
      "第一百九十四条　在诉讼时效期间的最后六个月内，因下列障碍，不能行使请求权的，诉讼时效中止：\n",
      "\n",
      "（一）不可抗力；\n",
      "\n",
      "（二）无民事行为能力人或者限制民事行为能力人没有法定代理人，或者法定代理人死亡、丧失民事行为能力、丧失代理权；\n",
      "\n",
      "（三）继承开始后未确定继承人或者遗产管理人；\n",
      "\n",
      "（四）权利人被义务人或者其他人控制；\n",
      "\n",
      "（五）其他导致权利人不能行使请求权的障碍。\n",
      "\n",
      "自中止时效的原因消除之日起满六个月，诉讼时效期间届满。' metadata={'source': 'knowledge_base/sample.docx'}\n"
     ]
    }
   ],
   "execution_count": 4
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
